package cn.github.spinner.editor;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class MQLKeywords {
    public static final Set<String> KEYWORDS = new HashSet<>(Arrays.asList(
            "add",
            "abort",
            "assign",
            "check",
            "checkin",
            "checkout",
            "clear",
            "commit",
            "compare",
            "compile",
            "connect",
            "convert",
            "copy",
            "del",
            "delete",
            "deduplicatefile",
            "disable",
            "disconnect",
            "download",
            "dump",
            "duplicatefile",
            "else",
            "emptyprefix",
            "enable",
            "encrypt",
            "escape",
            "eval",
            "evaluate",
            "execute",
            "expand",
            "export",
            "extract",
            "freeze",
            "from",
            "get",
            "global",
            "help",
            "hidden",
            "if",
            "import",
            "insert",
            "inventory",
            "kill",
            "link",
            "list",
            "listnames",
            "lock",
            "log",
            "major",
            "matchlist",
            "minor",
            "mod",
            "modify",
            "monitor",
            "orderby",
            "output",
            "pop",
            "print",
            "purge",
            "push",
            "query",
            "rechecksum",
            "recordsep",
            "recordseparator",
            "recurse",
            "rehash",
            "remove",
            "resume",
            "revise",
            "select",
            "send",
            "set",
            "smatchlist",
            "sort",
            "start",
            "status",
            "stop",
            "substring",
            "sync",
            "synchronize",
            "tcl",
            "temp",
            "temporary",
            "thaw",
            "then",
            "tidy",
            "to",
            "trace",
            "transition",
            "trigger",
            "unlock",
            "unset",
            "update",
            "updatestate",
            "upload",
            "val",
            "validate",
            "visible",
            "where",
            "zip"
    ));

    public static final Set<String> TYPES = new HashSet<>(Arrays.asList(
            "admin",
            "application",
            "association",
            "attribute",
            "bus",
            "businessobject",
            "businessobjectlist",
            "channel",
            "checkshowaccess",
            "command",
            "config",
            "connection",
            "context",
            "dataobject",
            "dimension",
            "env",
            "eventmonitor",
            "expr",
            "expression",
            "filter",
            "form",
            "format",
            "group",
            "history",
            "index",
            "inheritancerule",
            "inquiry",
            "interface",
            "location",
            "mail",
            "memory",
            "menu",
            "package",
            "page",
            "password",
            "path",
            "pathtype",
            "person",
            "policy",
            "portal",
            "product",
            "program",
            "property",
            "rel",
            "relationship",
            "resource",
            "role",
            "rule",
            "searchindex",
            "server",
            "site",
            "store",
            "system",
            "table",
            "tenant",
            "thread",
            "toolset",
            "transaction",
            "type",
            "uniquekey",
            "user",
            "vault",
            "webreport"
    ));

    public static final Set<String> OPERATORS = new HashSet<>(Arrays.asList(
            "(",
            ")",
            "[",
            "]",
            ";",
            ",",
            ".",
            "|",
            "==",
            "!=",
            "<",
            ">",
            "<=",
            ">=",
            "~~",
            "!~~",
            "~=",
            "!~=",
            "+",
            "-",
            "*",
            "/",
            "!",
            "&&",
            "||"
    ));

    public static final Set<String> TYPE_INSTANCES = new HashSet<>();

    public static final Set<String> RELATIONSHIP_INSTANCES = new HashSet<>();
}
